package com.gzu.finalwork.admin.mapper;

import org.apache.ibatis.annotations.Mapper;

import java.math.BigDecimal;

@Mapper
public interface AdminDashboardMapper {
    
    /**
     * 获取总订单数
     * @return 总订单数
     */
    int getTotalOrders();
    
    /**
     * 获取总订单数增长率（相比上月）
     * @return 增长率百分比
     */
    double getTotalOrdersGrowthRate();
    
    /**
     * 获取运输中订单数
     * @return 运输中订单数
     */
    int getInTransitOrders();
    
    /**
     * 获取运输中订单增长率（相比昨日）
     * @return 增长率百分比
     */
    double getInTransitOrdersGrowthRate();
    
    /**
     * 获取今日签收订单数
     * @return 今日签收数
     */
    int getTodayDeliveredOrders();
    
    /**
     * 获取今日签收增长率（相比昨日）
     * @return 增长率百分比
     */
    double getTodayDeliveredGrowthRate();
    
    /**
     * 获取今日收入
     * @return 今日收入金额
     */
    BigDecimal getTodayRevenue();
    
    /**
     * 获取今日收入增长率（相比昨日）
     * @return 增长率百分比
     */
    double getTodayRevenueGrowthRate();
    
    /**
     * 获取今日新订单数
     * @return 今日新订单数
     */
    int getTodayNewOrders();
    
    /**
     * 根据状态获取订单数
     * @param status 订单状态
     * @return 订单数量
     */
    int getOrdersByStatus(int status);
    
    /**
     * 获取本周订单数
     * @return 本周订单数
     */
    int getWeekOrders();
    
    /**
     * 获取本月订单数
     * @return 本月订单数
     */
    int getMonthOrders();
    
    /**
     * 获取本周收入
     * @return 本周收入
     */
    BigDecimal getWeekRevenue();
    
    /**
     * 获取本月收入
     * @return 本月收入
     */
    BigDecimal getMonthRevenue();
    
    /**
     * 获取总收入
     * @return 总收入
     */
    BigDecimal getTotalRevenue();
    
    /**
     * 获取本周收入增长率
     * @return 增长率百分比
     */
    double getWeekRevenueGrowthRate();
    
    /**
     * 获取本月收入增长率
     * @return 增长率百分比
     */
    double getMonthRevenueGrowthRate();
} 